﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

    /**
    byte pos[4];
	byte step[4];
	
	
	
	process P_0 {
	byte j=0, k=0;
	state NCS, CS, wait ,q2,q3;
	init NCS;
	trans
	 NCS -> wait { effect j = 1; },
	 wait -> q2  { guard j < 4; effect pos[0] = j;},
	 q2 -> q3 { effect step[j-1] = 0, k = 0; },
	 q3 -> q3 { guard k < 4 && (k == 0 || pos[k] < j); effect k = k+1;},
	 q3 -> wait { guard step[j-1] != 0 || k == 4; effect j = j+1;},
	 wait -> CS { guard j == 4; },
	 CS -> NCS { effect pos[0] = 0;};
	}
	process P_1 {
	byte j=0, k=0;
	state NCS, CS, wait ,q2,q3;
	init NCS;
	trans
	 NCS -> wait { effect j = 1; },
	 wait -> q2  { guard j < 4; effect pos[1] = j;},
	 q2 -> q3 { effect step[j-1] = 1, k = 0; },
	 q3 -> q3 { guard k < 4 && (k == 1 || pos[k] < j); effect k = k+1;},
	 q3 -> wait { guard step[j-1] != 1 || k == 4; effect j = j+1;},
	 wait -> CS { guard j == 4; },
	 CS -> NCS { effect pos[1] = 0;};
	}
	process P_2 {
	byte j=0, k=0;
	state NCS, CS, wait ,q2,q3;
	init NCS;
	trans
	 NCS -> wait { effect j = 1; },
	 wait -> q2  { guard j < 4; effect pos[2] = j;},
	 q2 -> q3 { effect step[j-1] = 2, k = 0; },
	 q3 -> q3 { guard k < 4 && (k == 2 || pos[k] < j); effect k = k+1;},
	 q3 -> wait { guard step[j-1] != 2 || k == 4; effect j = j+1;},
	 wait -> CS { guard j == 4; },
	 CS -> NCS { effect pos[2] = 0;};
	}
	process P_3 {
	byte j=0, k=0;
	state NCS, CS, wait ,q2,q3;
	init NCS;
	trans
	 NCS -> wait { effect j = 1; },
	 wait -> q2  { guard j < 4; effect pos[3] = j;},
	 q2 -> q3 { effect step[j-1] = 3, k = 0; },
	 q3 -> q3 { guard k < 4 && (k == 3 || pos[k] < j); effect k = k+1;},
	 q3 -> wait { guard step[j-1] != 3 || k == 4; effect j = j+1;},
	 wait -> CS { guard j == 4; },
	 CS -> NCS { effect pos[3] = 0;};
	}
	
	
	system async;
	
	
	
	*/


namespace WindowsFormsApplication1
{
    class AVEStructure
    {
        //to store the process
        public ArrayList globalvaris = new ArrayList();

        public ArrayList ps = new ArrayList();
        
        public String endString = "system async";
    }

    class Trans {

        public ArrayList expressions = new ArrayList();
     }

    class Process{
        public ArrayList constantvaris = new ArrayList();
        public ArrayList localvaris = new ArrayList();
        public ArrayList states = new ArrayList();
        public String init = null;
        public Trans Trans = new Trans();
    }
}
